buble sort in c that ask user input

41

#include <stdio.h>
#include <stdlib.h>

typedef enum _order {
    Ascending=1, Descending
} order;

void swap(int *x, int *y){
    int wk;
    wk=*x;*x=*y;*y=wk;
}

int needSwap(int x, int y, order dir){
    if(dir == Ascending)
        return x > y;
    if(dir == Descending)
        return x < y;
    return 0;
}

void bubbleSort(int *array, int top, int end, order dir){
    int i, j, swaped;
    for(i = top; i < end; ++i){
        swaped = 0;
        for(j = top + 1; j <= end - i; ++j)
            if(needSwap(array[j-1], array[j], dir)){
                swap(&array[j-1], &array[j]);
                swaped = 1;
            }
        if(swaped == 0)break;
    }
}

int main(){
    int myarray[100], index, order;
    index=0;
    printf("Enter your numbers. Write -1 to stop. \n");
    do{
        scanf("%d", &myarray[index++]);
    }while(myarray[index-1] != -1 && index < 100);
    --index;//Correction to point to the final value
    printf("Enter 1 if you want them to be in ascending order.\n"
           "Enter 2 if you want descending order\n");
    scanf("%d",&order);
    bubbleSort(myarray, 0, index-1, order);
    {//result print
        int i;
        for(i=0;i<index;++i)
            printf("%d ", myarray[i]);
        printf("\n");
    }
    system("PAUSE");
    return 0;
}

Comments

Submit
0 Comments

More Questions

boolean in crandom number c ModuleNotFoundError: No module named cv2
check dns server in linuxread files in c how to get user input in c
print boolean value in clatex font sizes see if two strings are equal in C
how to download file in powershellprintf with bool invoke-webrequest download file
write in file in cmongodb delete all documents how to genrate a random number in C
how to print boolean in csleep in c programming install zoom on ubuntu
c concatenate stringstake array as input in c install gitk mac
remove element from np arrayprint an array in c C static libraries (creating object files)
exponentials in cC++ initalize int16_t value script hack blox fruti
pointer operatorcheck command line input is a number in c what is covert channel
sqlserver insert with set identity-usr-bin-env: python-r: No such file or directory linear search program in c
Uri-beecrowd problem no - 1099 solution in Cc addition The fscanf and fprintf functions
function that reverses the content of an array of integers.how to search in a file in c Couldnt create temporary file to work with
WARNING: QA Issue: bgslibrary-dev rdepends on libopencv-imgproc, but it isnt a build dependency, missing opencv in DEPENDS or PACKAGECONFIG [build-deps]reading arrays from stdin c add a item to cart woocomerce with quantity
Using PostgreSQL array to store many-to-many relationship using sqlalchemylistas enlazadas- linked lists binary sorting
c how to include variables of other c filec strcat uri-beecrowd problem no - 1133 solution in C